#ifndef _KC_MESSAGE_PARSER__H_KC_
#define _KC_MESSAGE_PARSER__H_KC_

#include <string>
#include <boost/noncopyable.hpp>
#include "MsgParserErrors.h"
#include "../mime/data/Message.h"
#include "../mime/data/RawMessage.h"
 
namespace kc_sf
{

	/**
	 * Klasa do parsowania wiadomości.
	 *
	 * Ukrywa sposób w jaki zaimplementowano lekser ( analizator
	 * składniowy ) i parser ( analizator semantyczny ).
	 */
	class MessageParser : boost::noncopyable
	{
		public:

			MessageParser( const RawMessage &rmsg );

			bool parse( Message &msg );

		private:

			RawMessage mp_raw_message;
			MsgParserErrors mp_errors;	// bledy jakie wykryl w wiadomości parser
	};

}

#endif // _KC_MESSAGE_PARSER__H_KC_
